There are numerous variations on commercial microprocessor design, with different designs addressing different needs of host processing system manufacturers. Some types of microprocessors are constructed as a “system on chip” (SoC), and include multiple processing cores as well as additional peripherals on a single substrate in order to provide flexibility to manufactures. Often, not all the cores and interfaces are used in an efficient manner. In certain computing applications, some interfaces on the SoC are not utilized, while in other applications, additional interfaces not available on a SoC are required. Where such additional interfaces are needed, an additional SoC or add-on peripheral components, often in the form of a peripheral add-on card in a host processing system, are needed.
One example of the foregoing is host processing systems acting as servers and utilizing the architecture developed by Advanced RISC Machines (ARM). An ARM-based server generally uses multiple ARM based SoCs, each of which has a storage interface which may include Serial Attached SCSI (SAS), Serial ATA (SATA) and/or Peripheral Component Interconnect Express (PCIe) interfaces. The SoC may also include a storage acceleration engine, a network interface, and/or a network offload engine all on chip.
Traditional add-on storage and network adapters used as a solution when additional storage or networking processing is needed are not a cost effective solution on an ARM-based server. Host processing systems used to provide conventional storage services, for example, use add-on storage adapters such as a host bus adapter (HBA) or a redundant array of independent disks (RAID). Other solutions used to provide sufficient resources in a host processing system for storage service applications, such as use of host processing systems with software-based virtual machines, suffer from performance and transparency issues. Additionally, certain functions such as use of a write-back cache acceleration and zero memory copy cannot be provided by such software-based solutions.